/**
 * @file UnoCSS 配置文件
 * @description UnoCSS原子化CSS引擎配置文件，用于定义项目的原子化CSS规则和主题
 * @see https://unocss.nodejs.cn/
 * @see src/config/uno.ts - 包含主题、规则和快捷方式的详细定义
 */

import { presetUni } from '@uni-helper/unocss-preset-uni'
import {
  defineConfig,
  presetAttributify,
  presetIcons,
  transformerDirectives,
  transformerVariantGroup,
} from 'unocss'
import { rules, shortcuts, theme } from './src/config/uno'

export default defineConfig({
  /**
   * 预设
   */
  presets: [
    /**
     * 图标预设
     * @see https://unocss.nodejs.cn/presets/icons
     */
    presetIcons({
      scale: 1.2,
      warn: true,
    }),
    /**
     * 专门为 uni-app 设计的 UnoCSS 预设
     * @see https://uni-helper.js.org/unocss-preset-uni
     */
    presetUni(),
    /**
     * 属性化预设
     * @see https://unocss.nodejs.cn/presets/attributify
     */
    presetAttributify(),
  ],
  /**
   * 主题
   */
  theme,
  /**
   * 快捷方式
   */
  shortcuts,
  /**
   * 常用安全区域规则
   */
  rules,
  /**
   * 转换器
   */
  transformers: [
    transformerDirectives(), // 启用 @apply 功能
    transformerVariantGroup(), // 启用 () 分组功能
  ],
})
